/**
 * 
 */
package cn.com.gzheroli.core.beetlsql;

import org.beetl.sql.core.SQLManager;
import org.beetl.sql.core.mapper.MapperJavaProxy;
import org.beetl.sql.ext.DebugInterceptor;

/**  
* @类名: DebugInterceptor  
* @描述: TODO(这里用一句话描述这个类的作用)  
* @作者: 李长荣 lichang_20011@163.com  
* @日期: 2017年9月20日  上午9:16:53
*@version V1.0  
*    
*/
public class HeroDebugInterceptor extends DebugInterceptor{
	static String mapperName = MapperJavaProxy.class.getName();
	static String sqlManager = SQLManager.class.getName();
	@Override
	protected int lookBusinessCodeInTrace(StackTraceElement[] traces){
		String className = getTraceClassName();
		for(int i=traces.length-1;i>=0;i--){
			String name = traces[i].getClassName();
			if(className!=null&&className.equals(name)){
				return i;
				
			}else if(name.equals(mapperName)){
				//越过2层jdk 代理
				return i+2;
			}else if(name.equals(sqlManager)){
				return i+1;
			}
		}
		return 0;
	}
}
